Source:NetHack 3.2.0/global.h
Below is the full text to global.h from the source code of NetHack 3.2.0. To link to a particular line, write [[NetHack 3.2.0/global.h#line123]], for example. Warning! This is the source code from an old release. For the latest release, see Source code 1. /* SCCS Id: @(#)global.h 3.2 96/03/28 */ 2. /* Copyright © Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #ifndef GLOBAL_H 6. #define GLOBAL_H 7. 8. #include 9. 10. 11. /* #define BETA /* if a beta-test copy MRS */ 12. 13. /* 14. * Files expected to exist in the playground directory. 15. */ 16. 17. #define RECORD "record" /* a file containing list of topscorers */ 18. #define HELP "help" /* a file containing command descriptions */ 19. #define SHELP "hh" /* abbreviated form of the same */ 20. #define DEBUGHELP "wizhelp" /* a file containing debug mode cmds */ 21. #define RUMORFILE "rumors" /* a file with fortune cookies */ 22. #define ORACLEFILE "oracles" /* a file with oracular information */ 23. #define DATAFILE "data" /* a file giving the meaning of symbols used */ 24. #define CMDHELPFILE "cmdhelp" /* file telling what commands do */ 25. #define HISTORY "history" /* a file giving nethack's history */ 26. #define LICENSE "license" /* file with license information */ 27. #define OPTIONFILE "opthelp" /* a file explaining runtime options */ 28. #define OPTIONS_USED "options" /* compile-time options, for #version */ 29. 30. #define LEV_EXT ".lev" /* extension for special level files */ 31. 32. 33. /* Assorted definitions that may depend on selections in config.h. */ 34. 35. /* 36. * for DUMB preprocessor and compiler, e.g., cpp and pcc supplied 37. * with Microport SysV/AT, which have small symbol tables; 38. * DUMB if needed is defined in CFLAGS 39. */ 40. #ifdef DUMB 41. #ifdef BITFIELDS 42. #undef BITFIELDS 43. #endif 44. #ifndef STUPID 45. #define STUPID 46. #endif 47. #endif /* DUMB */ 48. 49. /* 50. * type xchar: small integers in the range 0 - 127, usually coordinates 51. * although they are nonnegative they must not be declared unsigned 52. * since otherwise comparisons with signed quantities are done incorrectly 53. */ 54. typedef schar xchar; 55. typedef xchar boolean; /* 0 or 1 */ 56. 57. #ifndef TRUE /* defined in some systems' native include files */ 58. #define TRUE ((boolean)1) 59. #define FALSE ((boolean)0) 60. #endif 61. 62. #ifndef STRNCMPI 63. # ifndef __SASC_60 /* SAS/C already shifts to stricmp */ 64. # define strcmpi(a,b) strncmpi((a),(b),-1) 65. # endif 66. #endif 67. 68. /* comment out to test effects of each #define -- these will probably 69. * disappear eventually 70. */ 71. #ifdef INTERNAL_COMP 72. # define RLECOMP /* run-length compression of levl array - JLee */ 73. # define ZEROCOMP /* zero-run compression of everything - Olaf Seibert */ 74. #endif 75. 76. /* #define SPECIALIZATION /* do "specialized" version of new topology */ 77. 78. 79. #ifdef BITFIELDS 80. #define Bitfield(x,n) unsigned x:n 81. #else 82. #define Bitfield(x,n) uchar x 83. #endif 84. 85. #ifdef UNWIDENED_PROTOTYPES 86. # define CHAR_P char 87. # define SCHAR_P schar 88. # define UCHAR_P uchar 89. # define XCHAR_P xchar 90. # define SHORT_P short 91. # define BOOLEAN_P boolean 92. # define ALIGNTYP_P aligntyp 93. #else 94. # ifdef WIDENED_PROTOTYPES 95. # define CHAR_P int 96. # define SCHAR_P int 97. # define UCHAR_P int 98. # define XCHAR_P int 99. # define SHORT_P int 100. # define BOOLEAN_P int 101. # define ALIGNTYP_P int 102. # endif 103. #endif 104. #if defined(ULTRIX_PROTO) && !defined(__STDC__) 105. /* The ultrix 2.0 and 2.1 compilers (on Ultrix 4.0 and 4.2 respectively) can't 106. * handle "struct obj *" constructs in prototypes. Their bugs are different, 107. * but both seem to work if we put "void*" in the prototype instead. This 108. * gives us minimal prototype checking but avoids the compiler bugs. 109. * 110. * OBJ_P and MONST_P should _only_ be used for declaring function pointers. 111. */ 112. #define OBJ_P void* 113. #define MONST_P void* 114. #else 115. #define OBJ_P struct obj* 116. #define MONST_P struct monst* 117. #endif 118. 119. #define SIZE(x) (int)(sizeof(x) / sizeof(x0)) 120. 121. 122. /* A limit for some NetHack int variables. It need not, and for comparable 123. * scoring should not, depend on the actual limit on integers for a 124. * particular machine, although it is set to the minimum required maximum 125. * signed integer for C (2^15 -1). 126. */ 127. #define LARGEST_INT 32767 128. 129. 130. #ifdef REDO 131. #define Getchar pgetchar 132. #endif 133. 134. /* 135. * Automatic inclusions for the subsidiary files. 136. * Please don't change the order. It does matter. 137. */ 138. 139. #ifndef COORD_H 140. #include "coord.h" 141. #endif 142. 143. #if defined(VMS) && !defined(VMSCONF_H) 144. #include "vmsconf.h" 145. #endif 146. 147. #if defined(UNIX) && !defined(UNIXCONF_H) 148. #include "unixconf.h" 149. #endif 150. 151. #if defined(OS2) && !defined(OS2CONF_H) 152. #include "os2conf.h" 153. #endif 154. 155. #if defined(MSDOS) && !defined(PCCONF_H) 156. #include "pcconf.h" 157. #endif 158. 159. #if defined(TOS) && !defined(TOSCONF_H) 160. #include "tosconf.h" 161. #endif 162. 163. #if defined(AMIGA) && !defined(AMICONF_H) 164. #include "amiconf.h" 165. #endif 166. 167. #if defined(MAC) && ! defined(MACCONF_H) 168. #include "macconf.h" 169. #endif 170. 171. #if defined(WIN32) && !defined(NTCONF_H) 172. #include "ntconf.h" 173. #endif 174. 175. /* Displayable name of this port; don't redefine if defined in *conf.h */ 176. #ifndef PORT_ID 177. # ifdef AMIGA 178. # define PORT_ID "Amiga" 179. # endif 180. # ifdef MAC 181. # define PORT_ID "Mac" 182. # endif 183. # ifdef MSDOS 184. # ifdef PC9800 185. # define PORT_ID "PC-9800" 186. # else 187. # define PORT_ID "PC" 188. # endif 189. # ifdef DJGPP 190. # define PORT_SUB_ID "djgpp" 191. # else 192. # ifdef OVERLAY 193. # define PORT_SUB_ID "overlaid" 194. # else 195. # define PORT_SUB_ID "non-overlaid" 196. # endif 197. # endif 198. # endif 199. # ifdef OS2 200. # define PORT_ID "OS/2" 201. # endif 202. # ifdef TOS 203. # define PORT_ID "ST" 204. # endif 205. # ifdef UNIX 206. # define PORT_ID "Unix" 207. # endif 208. # ifdef VMS 209. # define PORT_ID "VMS" 210. # endif 211. # ifdef WIN32 212. # define PORT_ID "NT" 213. # endif 214. #endif 215. 216. #if defined(MICRO) && !defined(AMIGA) && !defined(TOS) && !defined(OS2_HPFS) 217. #define SHORT_FILENAMES /* filenames are 8.3 */ 218. #endif 219. 220. /* 221. * This must follow the include of macconf.h because EXIT_SUCCESS is defined 222. * in one of the header files and we get a duplicate define. 223. */ 224. #ifdef VMS 225. /* vms_exit() (sys/vms/vmsmisc.c) expects the non-VMS EXIT_xxx values below. 226. * these definitions allow all systems to be treated uniformly, provided 227. * main() routines do not terminate with return(), whose value is not 228. * so massaged. 229. */ 230. # ifdef EXIT_SUCCESS 231. # undef EXIT_SUCCESS 232. # endif 233. # ifdef EXIT_FAILURE 234. # undef EXIT_FAILURE 235. # endif 236. #endif 237. 238. #ifndef EXIT_SUCCESS 239. # define EXIT_SUCCESS 0 240. #endif 241. #ifndef EXIT_FAILURE 242. # define EXIT_FAILURE 1 243. #endif 244. 245. #if defined(X11_GRAPHICS) || defined(AMII_GRAPHICS) 246. # ifndef USE_TILES 247. # define USE_TILES /* glyph2tile[] will be available */ 248. # endif 249. #endif 250. 251. 252. /* primitive memory leak debugging; see alloc.c */ 253. #ifdef MONITOR_HEAP 254. extern long *FDECL(nhalloc, (unsigned int,const char *,int)); 255. extern void FDECL(nhfree, (genericptr_t,const char *,int)); 256. # ifndef __FILE__ 257. # define __FILE__ "" 258. # endif 259. # ifndef __LINE__ 260. # define __LINE__ 0 261. # endif 262. # define alloc(a) nhalloc(a,__FILE__,(int)__LINE__) 263. # define free(a) nhfree(a,__FILE__,(int)__LINE__) 264. #else /* !MONITOR_HEAP */ 265. extern long *FDECL(alloc, (unsigned int)); /* alloc.c */ 266. #endif 267. 268. 269. /* 270. * Configurable internal parameters. 271. * 272. * Please be very careful if you are going to change one of these. Any 273. * changes in these parameters, unless properly done, can render the 274. * executable inoperative. 275. */ 276. 277. /* size of terminal screen is (at least) (ROWNO+3) by COLNO */ 278. #define COLNO 80 279. #define ROWNO 21 280. 281. #define MAXNROFROOMS 40 /* max number of rooms per level */ 282. #define MAX_SUBROOMS 24 /* max # of subrooms in a given room */ 283. #define DOORMAX 120 /* max number of doors per level */ 284. 285. #define BUFSZ 256 /* for getlin buffers */ 286. #define QBUFSZ 128 /* for building question text */ 287. 288. #define PL_NSIZ 32 /* name of player, ghost, shopkeeper */ 289. #define PL_CSIZ 20 /* sizeof pl_character */ 290. #define PL_FSIZ 32 /* fruit name */ 291. #define PL_PSIZ 63 /* player-given names for pets, other 292. * monsters, objects */ 293. 294. #define MAXDUNGEON 10 /* current maximum number of dungeons */ 295. #define MAXLEVEL 30 /* max number of levels in one dungeon */ 296. #define MAXSTAIRS 1 /* max # of special stairways in a dungeon */ 297. #define ALIGNWEIGHT 4 /* generation weight of alignment */ 298. 299. #define MAXULEV 30 /* max character experience level */ 300. 301. #define MAXMONNO 120 /* geno monst after this number killed */ 302. #define MHPMAX 500 /* maximum monster hp */ 303. 304. #endif /* GLOBAL_H */ global.h